/**
 * 
 */
package com.uit.project.bustrip.daointerface;

import java.util.List;

import org.json.JSONObject;

import android.content.ContentValues;

import com.uit.project.bustrip.database.DBHelper;
import com.uit.project.bustrip.valueobject.QueryOption;


/**
 * @author Nguyen
 *
 */
public interface BaseDao<T,ID> {
	Class<T> getEntityClass();
	String getTableName();
	List<T> findAll();
	List<T> find(QueryOption options);
	T findById(ID id);
	T getFromJSON(JSONObject json);
	ContentValues getContentValues(T entity);
	long insert(T entity);
	int update(T entity);
	int updateBy(T entity,String whereClause, String[] whereArgs);
	int insertOrUpdate(T entity);
	int delete(ID id);
	int deleteAll();
	int deleteBy(String whereClause, String[] whereArgs);
	public void setDbHelper(DBHelper instance);
}
